/*
 * @Descripttion: 
 * @Author: voanit
 * @Date: 2022-01-05 11:57:39
 * @LastEditors: voanit
 * @LastEditTime: 2022-01-05 12:27:53
 */
var arr = [
	{ id: '29', pid: '', name: '总裁办' },
	{ id: '2c', pid: '', name: '财务部' },
	{ id: '2d', pid: '2c', name: '财务核算部' },
	{ id: '2f', pid: '2c', name: '薪资管理部' },
	{ id: 'd2', pid: '', name: '技术部' },
	{ id: 'd3', pid: 'd2', name: 'Java研发部' }
]

// [
// 	{ id: '29', pid: '', name: '总裁办' },
// 	{
// 		id: '2c',
// 		pid: '',
// 		name: '财务部',
// 		children: [ { id: '2d', pid: '2c', name: '财务核算部' }, { id: '2f', pid: '2c', name: '薪资管理部' } ]
// 	},
// 	{ id: 'd2', pid: '', name: '技术部',children:[{ id: 'd3', pid: 'd2', name: 'Java研发部' }] },
	
// ]

 /* 
  1-定义一个映射关系 map对象
  map={
    29:	{ id: '29', pid: '', name: '总裁办',children:[] },
    2c:{ id: '2c', pid: '', name: '财务部' },
  }
  2-定义每一项有一个children  值：[]
  3-根据条件进行匹配  pid和id相同  筛选出来
   */

  export function toDo(arr){
  var map={}
  var newArr=[]//  收集处理后的数据
  arr.forEach(item1=>{
    map[item1.id]=item1
    item1.children=[]
  })
  console.log(map)

  arr.forEach(item2=>{
    // console.log(item2);
    // 4-获取有子集的父级或者为空
    var parent=map[item2.pid]
    /* 
    undefined 888
    undefined 888
    { id: '2c', pid: '', name: '财务部', children: [] } 888
    { id: '2c', pid: '', name: '财务部', children: [] } 888
    undefined 888
    { id: 'd2', pid: '', name: '技术部', children: [] } 888
     
    
     */
     // 5-判断parent是否有值，有值获取的是父级 ，需要往里面添加子集
      if(parent){
        //  往一级添加二级
        parent.children.push(item2)
      }else{
        // 6- 不满足的就收集===收集的是一级
        newArr.push(item2)
      }  
   // console.log(parent,888);
  })

  return  newArr

  // console.log(newArr,6666);
}

//  调用
console.log(toDo(arr),444);

